"""
学生信息管理系统v1.0
"""
import re


class Student:
    # 创建构造函数
    def __init__(self, number, age, name):
        self.number = number
        self.age = age
        self.name = name
        print(f"初始化了{self.name}")


# 创建学生管理器类
class StudentManager:
    # 构造函数
    def __init__(self):
        self.students = []
        print("初始化了学生管理器")

    # 添加学生的方法add_student
    def add_student(self, student):
        # 列表的元素追加
        self.students.append(student)
        print(f"追加了学生{student.name}")
        # 打印出这个学生的学号、姓名、年龄
        print(f"学生是{student.number}号{student.name}，{student.age}岁")

    # 查询学生
    def search_student(self, message):
        # for循环遍历self.student列表
        results = []
        for student in self.students:
            if message in student.number or message in student.name:
                print(f"姓名{student.number}，学号{student.name}，年龄{student.age}")

    def view_list(self):
        if self.students:
            for student in self.students:
                print(f"学号:{student.number},年龄:{student.age},姓名:{student.age}")


# 编写一个菜单
def display_menu():
    print("=" * 30)
    print("学生信息管理系统")
    print("=" * 30)
    print("1.添加学生 2.查询学生 3.删除学生 4.显示列表 5.退出")
    choice = input("请选择操作：")
    print(f"选择了{choice}")
    return choice


def main():
    manager = StudentManager()
    while True:
        choice = display_menu()
        if choice == "1":
            # 向学生管理器中添加学生
            print("执行添加学生")
            # 使用input函数，接收学号
            number = input("请输入学生学号：")
            # 使用input函数
            name = input("请输入学生姓名：")
            age = input("请输入学生年龄：")
            student1 = Student(number=number, name=name, age=age)
            # 使用学生管理器添加student1
            manager.add_student(student1)
            print(f"{student1.name}学生添加成功")
        # 当接收到其他choice时，执行其他任务(条件分支语句)
        elif choice == "2":
            print("执行查询学生")
            message = input("请输入学号或姓名：")
            manager.search_student(message)
        elif choice == "3":
            print("执行删除学生")
        elif choice == "4":
            print("执行显示列表")
            manager.view_list()
        elif choice == "5":
            print("退出")
            break
        else:
            print("不好意思，出错啦~")


# 添加运行条件
if __name__ == '__main__':
    main()
